package BaseUserController

import (
	"github.com/gin-gonic/gin"
	"learn/app/controllers/cc"
	"learn/app/services/baseUserService"
)

type UserRoles struct {
	cc.BaseController
	Id      int64  `json:"id" one:"gte=0"`
	RoleIds string `json:"role_ids"  `
}

func (obj *UserRoles) Update(c *gin.Context) {
	userStruct := UserRoles{}
	if ok := cc.BindParamAndCheckAndExpectField(c, &userStruct); ok == false {
		return
	}

	res, _ := new(baseUserService.UserRole).Update(obj.ToMap(userStruct))
	cc.Return_with_code(res, c)
}

//p := &Student{
//  Name: "Mike",
//  Age:  12,
//}
//var m map[string]interface{}
//mapstructure.Decode(p, &m)

//f err := mapstructure.Decode(input, &role); err != nil {

//"""
//注意的点：
//1、map[string]interface的键值将对应字段赋值到结构体时忽略大小写；
//2、结构体中所有字段名必须以大写字母开头，否则将无法赋值
//3、使用mapstructure.Decode()方法不能转化携带_特殊符号的变量
//"""
//package main
//
//import (
//    "fmt"
//    "github.com/mitchellh/mapstructure"
//)
//type student struct{
//    id int `json:"id"`
//    Name string `json:"name"`
//    Adress []string `json:"adress"`
//}
//func main() {
//    val := map[string]interface{}{
//        "id":1,
//        "name":"xiaoming",
//        "adress":[]string{"beijing","nanjing"},
//    }
//    stu := student{}
//    err := mapstructure.Decode(val,&stu)
//    if err != nil {
//        fmt.Println(err.Error())
//    }
//    fmt.Println("val:")
//    fmt.Println(val)
//    fmt.Println("struct:")
//    fmt.Println(stu)
//}
